package com.billard.service;

import com.billard.dto.TableStatusDTO;
import com.billard.entity.Table;
import com.billard.vo.TableVO;

import java.util.List;

/**
 * 球台服务接口
 */
public interface TableService {

    /**
     * 查询所有球台
     */
    List<TableVO> getAllTables();

    /**
     * 根据状态查询球台
     */
    List<Table> getTablesByStatus(Integer status);

    /**
     * 根据ID查询球台
     */
    Table getTableById(Long id);

    /**
     * 创建球台
     */
    void createTable(Table table);

    /**
     * 更新球台
     */
    void updateTable(Table table);

    /**
     * 删除球台
     */
    void deleteTable(Long id);

    /**
     * 变更球台状态
     */
    void changeTableStatus(TableStatusDTO tableStatusDTO);

    /**
     * 开始使用球台
     */
    void startUsingTable(Long tableId, String customerName, String customerPhone);

    /**
     * 结束使用球台
     */
    void endUsingTable(Long tableId);

    /**
     * 暂停球台
     */
    void pauseTable(Long tableId);

    /**
     * 恢复球台
     */
    void resumeTable(Long tableId);
}
